package client;

import game.Player;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Panel panel qui permet d'afficher les informations 
 * d'un joueur tel que son nom et ses points
 * 
 * Remarque : Le contructeur sans parametres, permet
 * d'obtenir un panel des titres d'informations alors
 * que le constucteur avec parametre permet d'obtenir
 * un panel avec les informations du joueur
 * 
 * @author David Fassler
 * @version 1.0
 */
public class JPanelPlayerInfo extends JPanel {
	
	/**
	 * Pour la serialisation
	 */
	private static final long serialVersionUID = 6821820212492679897L;
	
	/**
	 *  Dimensions du panel d'information
	 */
	public static int WIDTH = 400;		
	/**
	 *  Dimensions du panel d'information
	 */
	public static int HEIGHT = 25;
	private static Dimension dimPlayerInfo = new Dimension(WIDTH, HEIGHT);
	
	// Contenu du label d'information
	private JLabel lblPlayerName;	
	private JLabel lblPlayerPoints;
			
	/**
	 * Constructeur
	 * Permet d'obtenir un panel contenant les titres
	 * @param showScore indique si il faut afficher les score
	 */
	public JPanelPlayerInfo( boolean showScore){
		setPreferredSize(dimPlayerInfo);
		setLayout(new FlowLayout(FlowLayout.LEFT,0,1));
		
		lblPlayerName = new JLabel("Nom");
		lblPlayerName.setPreferredSize(new Dimension(80,HEIGHT));
		lblPlayerName.setBackground(lblPlayerName.getBackground());
		
		lblPlayerPoints = new JLabel("Points");
		lblPlayerPoints.setPreferredSize(new Dimension(45,HEIGHT));
		lblPlayerPoints.setBackground(lblPlayerPoints.getBackground());
		
		
		add(lblPlayerName);
		if (showScore)
			add(lblPlayerPoints);
		
		
	}
	
	/**
	 * Constructeur
	 * Permet d'obtenir un panel contenant les informations 
	 * du joueur
	 * @param player joueur a afficher
	 * @param showScore Indique si il faut afficher les scores
	 */
	public JPanelPlayerInfo(Player player, boolean showScore){
		
		this(showScore);
		this.setBackground(Color.white);
		
		lblPlayerName.setText(player.getPseudo());
		lblPlayerPoints.setText(player.getScore()+"");
				
	}
	
		

}
